home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et3_0-a1.lha / et3 / src / Document.h < prev    next >
C/C++ Source or Header  |  1992-07-10  |  2KB  |  92 lines

  1. #ifndef Document_First
  2. #ifdef __GNUG__
  3. //pragma once
  4. #pragma interface
  5. #endif
  6. #define Document_First
  7.  
  8. #include "Manager.h"
  9. #include "Data.h"
  10. #include "TypeMatcher.h"
  11.  
  12. enum FileDialogType {
  13.     eFDTypeRead,
  14.     eFDTypeWrite,
  15.     eFDTypeImport
  16. };
  17.  
  18. class Data;
  19. class FileDialog;
  20. class VObject;
  21.  
  22. class Document : public Manager {
  23. private:
  24.     virtual void Store();
  25. public:
  26.     MetaDef(Document);
  27.  
  28.     Document(const Symbol &documentType= cDocTypeUndef);
  29.     ~Document();
  30.     
  31.     //---- dialogs
  32.     virtual FileDialog *MakeFileDialog(FileDialogType); 
  33.  
  34.     //---- document attributes
  35.     int UniqueId();
  36.     Symbol GetDocumentType()
  37.     { return docType; }
  38.     bool IsUntitled();
  39.     bool IsConverted();
  40.     char *GetBaseName();
  41.     void SetData(Data *fd);
  42.     Data *GetData()
  43.     { return docData; }
  44.  
  45.     //---- change management
  46.     virtual CommandProcessor *MakeCmdProcessor();
  47.     virtual bool Modified();
  48.     virtual bool SavedChanges();
  49.  
  50.     //---- misc
  51.     void CollectParts(Collection*);
  52.     void ExtCommand(int from, char *req, char *args, int len,
  53.                             char *&ret, int &retlen);
  54.     //---- windows
  55.     VObject *DoMakeIconContent();
  56.  
  57.     //---- menues
  58.     virtual MenuBar *DoMakeMenuBar();
  59.     Menu *MakeMenu(int menuId);
  60.     void DoSetupMenu(Menu*);
  61.     Command *DoMenuCommand(int);
  62.  
  63.     //---- loading
  64.     virtual bool CanLoad(Data *data);
  65.     virtual void AboutToLoad(Data *data);
  66.     virtual bool LoadData(Data *data, bool unique);
  67.  
  68.     //---- generic menu commands
  69.     virtual bool Close();       // return TRUE if OK
  70.     virtual void Revert();
  71.     virtual bool Save();        // return TRUE if OK
  72.     virtual bool SaveAs();      // return TRUE if OK
  73.  
  74.     //---- input/output
  75.     virtual bool DoFileIsAlreadyOpen(Document *shown, char *name);
  76.     virtual void MakeBackup(char *loadDir, char *docName);
  77.     virtual bool DoReadData(Data *data);        // return TRUE if OK
  78.     virtual bool DoRead(IStream&, Data *data);  // return TRUE if OK
  79.     virtual bool DoWrite(OStream&, Data *data); // return TRUE if OK
  80.     
  81.     //---- obsolete 
  82.     virtual VObject *DoMakeIcon(char *name);
  83.     virtual bool Load(char *filename= 0, bool unique= TRUE);
  84.  
  85. private:
  86.     Symbol docType;
  87.     Data *docData;
  88. };
  89.  
  90. #endif
  91.  
  92.